home *** CD-ROM | disk | FTP | other *** search
- GNU Scheme 4e2 Summer Rehash (theres life in the source yet!)
- ----------------------------------------------------------------------
-
- This is the (n'th) release of the GNU scheme interpreter.
- As ever read the provided documentation carefully ;-)
-
- Things to note :
- if you keep you scheme source in !Scm.scm then
- (load "<scm$dir>.foo")
-
- will load !Scm.scm.foo - as you might expect.
-
- Source is available from :
- swiss-ftp.ai.mit.edu
- /pub/users/jaffer
-
- (depending on how they are feeling :)
- and it'll no doubt eventually arrive at
- ftp.cs.indiana.edu
- /pub/scheme-repository
- [note this is the new home of the scheme repository]
- [note2 - the archimedes extension routines aren't yet in the source package,
- if you desperately want to see how then email me ;)
- ]
-
-
- Running SCM
- -----------
- Three ways depending on how you like it :
- o double click on the icon
- o an alias 'scm' is setup to use
- o an alias 'taskscm' runs scm in a taskwindow; however the first
- of the three ways is preferred as it enables the graphics
- routines to work - if you run in a taskwindow then they tend
- not to...(unfortunately)
- (You'll need OS3 for the taskwindow alias to work of course)
-
- It _might_ be nice if everything ran in a window; but having seen EdScheme
- doing this the speed really is depressing - I think that having it run under
- the WIMP with windows etc would add to the code something chronic and also
- make the performance suffer when doing graphics (mind you, configurable time
- slices might sort it)....opinions anyone?
-
-
-
- Large Announcement
- ------------------
- Due to some diligent interference with the source we now have some really
- fun primitives to play with - at last you can have graphics!
- See the docs in !ArcExtns. Also note that they arent what you might call
- spectacularly robust - ie they dont check what numbers you feed into them
- and merely try it anyway..
-
- This should significantly improve the fun factor of Scheme for the masses.
- I would be EXTREMELY grateful to hear of any bugs present in the new routines
- - I'll fix anything thats probably brain damaged.
- SCM should load the new routines as I've set it up - the source is VERY self
- explanatory (the scheme support routines) - the C code should be present
- inside !Scm.c.archi.
-
- I'll include any nice graphics routines that anyone writes with full credit.
- (so get doodling)
-
-
-
- Features / Bugs / Warts
- -----------------------
- `alarm' has been removed. It behaves very badly on the RPC (worked okay on
- the A5000 but then thats life I guess...)
-
- You may have problems using taskwindows and trying to interrupt loops -
- for example if you try
- (define (f x)(f (- x 1))) ; just to be awkward
- (f 9)
-
- and try hitting escape to interrupt it in a !Zap taskwindow - it sticks.
- However running it full screen mode it interrupts fine on escape - simply
- try defining
- (define (user-interrupt)
- (begin
- (display "Ouch! you hit escape!)(newline)
- (abort)))
-
- before trying the above again and it'll display your new customised message
- when you hit escape...
-
- One slightly annoying one -
- If you fiddle the !Boot file to pass arguments to the alias `scm', then it
- doesn't load the file most of the time due to erroneous expansion of
- aliases of paths; even if you don't it tends to do this.
- Slightly irksome but easily worked around - the `load' primitive copes
- with anything thrown at it generally, including paths / aliases and if you
- need something loaded at each invocation then add it into your ScmInit.
-
- Second one :
- If you load a file and it is syntactically invalid (aherm) - for that read -
- you botched up and put in one too many / few parentheses :
- SCM complains and then if you go back and edit it and try to save it you get
- a file open error. This is because SCM doesn't shut open files - simply
- do a (system "shut") or alternatively similar from your favourite editor
- (!shut in vi does the trick).
- Other than that it seems to suffice as the fastest LISPy type language I've
- found on the Arc...(see footnote #1)
-
-
- Bonuses
- -------
- Small items that are included in this little bundle that you wouldn't
- otherwise get :
- !Scm.makefile
- !Scm.scm.macros
- !Scm.scm.arc_ext
- !Scm.scm.arc_demos
-
- Taking each in turn we have :
-
- o the makefile for building SCM - this is due to Aubrey not including
- platform dependent makefiles with SCM any more - and as we dont
- have a UNIX like shell (sigh) this is the easiest way to rebuild
- it.
-
- o a miniscule demonstration of how to do macros. Nobody actually
- asked but I was interested as it's the only bit I hadn't figured
- out how to do in SCM. Suck 'em and see.
-
- o the support code for the archi graphics routines - feel free to add
- to this - I'll include _anything_ useful with credit.
-
- o the demonstration code using the new primitives provided. Again
- I'll include _anything_ useful with credit.
-
- Options compiled in -
- Floats, Bignums (try `(integer-expt 2 256)',
- Ticks (I'm not convinced they do much useful but they are here for
- inspection...), Arrays, Rev2 procedures, Regular expressions (regexs)
- (note that these are only slightly tested, but seem to go okay from what
- Ive tried so far---this was not a pleasant afternoon massaging this thru'..),
- Compiled closures (if you fancy peering at the source and adding new
- routines then this might be of interest..), IO-extensions.
-
-
- [
- Please note that this binary is based upon the 4e2 version of the sources
- and not the 4e1 official release---i.e. your mileage may vary.
- If you feel worried then you should probably use 4e1 ;-)
- ]
-
- Other toys for GNU Scheme
- -------------------------
- (NI) means not included in this bundle - (I) means it is.
-
-
- (NI)
- There should be the Symbolic Algebra package JACAL available for use with
- GNU Scheme at the same place you got this from - if not email me and I'll
- send you it bundled up ready to go for the arc.
- (It actually installs moderately painlessly once you've fiddled the paths
- and a few redundant defines out)
- (note - it still works as of 4e2 :-)
-
-
- (NI)
- WB - database package. Haven't tried. Needs Hobbit?
-
-
- (NI)
- Hobbit - Scheme->C compiler. May look at this soonish once I get graphics
- finished or once GCC 2.6.n comes out for RiscOS - until then it would
- slow it down to compile it with GCC (pity..).
-
-
- (NI)
- XSCM - interface to X - errm you are joking aren't you?
- Actually if someone could come up with a port of this it would be really
- really spiffy and make writing desktop apps a doddle; the only problem is
- that it's horribly non-trivial. (could do Tcl/Tk instead?)
-
-
- (I)
- SLIB - Practically all of SLIB is present - the texi'ed docs are present in
- !Scm.slibdocs.* and downwards. Theres a lot of it. And a lot of it is
- rather err hirsute. If you are willing to persevere there are all manner of
- Good Things in here - an Object system for doing OOP with Scheme,
- a database system, syntax extensions, character plotting for simple text
- based graphics (in short - this makes Scheme have more functions than you
- can safely remember..).
-
- (the list goes on and on....see the FAQs)
-
-
-
-
- Bug reports / comments / notice of anyone actually using it to :
- email
- ams@amonsul.demon.co.uk
-
- snailmail
- (I'm ever optimistic someone might send me something novel / a postcard) :
-
- 65 ellan hay rd,
- bradley stoke,
- bristol.
- bs12 0ha.
-
- happy scheming,
-
- al slater.
- 3/8/95
-
- (footnote #1 -- This was true until Pete Burwood ported GNU CLISP.
- It goes faster. (It also has a sensible object system. Yummy. It should
- be available from whereever you got this...))